package com.sale.system.service;

import com.sale.system.domain.AccountsEmpty;
import com.sale.system.domain.PullDown;
import com.sale.system.domain.dto.SysAccountsDetailsDto;
import com.sale.system.domain.dto.SysAccountsDto;
import com.sale.system.domain.vo.SysAccountsUpdateVo;
import com.sale.system.domain.vo.SysAccountsVo;
import com.sale.system.domain.vo.SysFunctionalParameterVo;
import com.sale.system.domain.vo.SysInventoryAccountingVo;

import java.util.List;

/**
 * @Description 账套管理
 * @Param SysSetAccounts
 * @Date 23-07-07
 * @Author hl
 **/
public interface ISysAccountsService {

    /**
     * 查询账套管理
     *
     * @param
     * @return 账套管理集合
     */
    List<SysAccountsDto> selectAccountsList();

    /**
     * 账套信息系统参数集合
     *
     * @param
     * @return 账套管理集合
     */
    SysAccountsDetailsDto selectAccountsDetailsList(Long accountsId);

    /**
     * 新增账套管理
     *
     * @param sysAccountsVo
     * @return int
     */
    int insertAccounts(SysAccountsVo sysAccountsVo);

    /**
     * 修改账套管理
     *
     * @param sysAccounts
     * @return int
     */
    int updateAccounts(SysAccountsUpdateVo sysAccountsUpdateVo);

    /**
     * 修改功能参数
     *
     * @param sysFunctionalParameterVo
     * @return int
     */
    boolean updateSysFunctionalParameter(List<SysFunctionalParameterVo> sysFunctionalParameterVo);

    /**
     * 修改库存核算
     *
     * @param sysInventoryAccountingVo
     * @return int
     */
    int updateSysInventoryAccounting(SysInventoryAccountingVo sysInventoryAccountingVo);


    /**
     * 删除账套管理
     *
     * @param accountsId
     * @return int
     */
    int deleteAccounts(long accountsId);

    /**
     * 更改租户值(缓存)
     *
     * @param id
     * @return int
     */
    void selectTenant(String id);

    /**
     * 查询默认租户值
     *
     * @param userName
     * @return
     */
    void selectTenantMerlin(String userName,long userId);

    /**
     * 无账套的情况下(新增)
     *
     * @param accountsEmpty
     * @return int
     */
    int insertAccountsEmpty(AccountsEmpty accountsEmpty);

    /**
     * 账套下拉
     */
    List<PullDown> accountsDown();
}
